package one.chapter_1.unionfind;

/**
 * union-find
 */
public interface UF {

    /**
     * 在p,q之间添加一条连接
     * @param p
     * @param q
     */
    void union(int p,int q);

    /**
     * p所在连通分量的标识符
     * @param p
     * @return
     */
    int find(int p);

    /**
     * 测试p,q是否连通
     * @param p
     * @param q
     * @return
     */
    boolean connected(int p,int q);

    /**
     * 连通分量的数量
     * @return
     */
    int count();
}
